# a = 10
# b = 20
# # 注意这种写法是错误的，因为+只能凭借字符串，不能像在Java中那样直接把变量加起来
# # print('a = '+a, 'b = '+b)
# print('a = '+ str(a) + ', b = '+ str(b)) # 正确的写法
# a,b = b,a
# # 注意这种写法是错误的，因为+只能凭借字符串，不能像在Java中那样直接把变量加起来
# # print('a = '+a, 'b = '+b)
# print('a = '+ str(a) + ', b = '+ str(b)) # 正确的写法
#
# c = 30
# a,b,c = b,c,a
from re import match

# # 从键盘获取一个四位整数，分别输出其位数的值
# num = input("请输入一个四位整数：") # 这里num是一个字符串
# # 可以通过eval函数和int函数将其转换成整数
# print("千位数字为：", int(num[0]))
# print("百位数字为：", int(num[1]))
# print("十位数字为：", int(num[2]))
# print("个位数字为：", int(num[3]))
#
#
# fatherheight = float(input('请输入父亲的身高：'))
# montherheight = float(input('请输入母亲的身高：'))
# sonheight = (fatherheight+montherheight) * 0.54
# print('预测儿子的身高：'+str(sonheight))


# # 注意区分下面两种写法的区别
# 字符串分解赋值
# a,b,c,d = 'room' # 把字符序列一次赋值给多个变量
# print(a,b,c,d)
# a=b=c=d='room' # 把字符串依次赋值给多个变量
# print(a,b,c,d)

# if-else语句
# if a > b:
#     print('a is greater than b')
# elif a < b:
#     print('a is less than b')
# else:
#     print('a is equal to b')
# 注意：当if语句中的代码块只有一条语句时，可以省略冒号和缩进，直接写在同一行。

# # if-else语句的简写形式
# a = 10
# b = 20
# # 如果if语句的条件判断结构为True，执行if前面的代码，否则就执行else后面的代码。
# result = 'a is greater than b' if a > b else 'a is less than b' if a < b else 'a is equal to b'
# print(result)

# score = float(input('请输入你的成绩：'))
# # 开始通过嵌套if-else语句来判断成绩的等级
# if score > 100 or score < 0:
#     print('成绩有误！')
# elif 0<= score < 60: # 在Java和C语言中这样写是有误的
#     print('D')
# elif 60<= score < 70:
#     print('C')
# elif 70<= score < 80:
#     print('B')
# elif 80<= score < 90:
#     print('A')
# else:
#     print('S')


# # python3.11新特性，支持match语句（类似于switch语句）
# score = input('请输入你的成绩的等级：')
# match score: # 根据score的值来执行对应的代码块
#     case 'A':
#         print('优秀') # 这里不同于Java和C语言，不需要加break语句
#     case 'B':
#         print('良好')
#     case 'C':
#         print('及格')
#     case 'D':
#         print('不及格')

# 循环结构-for循环

# 打印1~10之间的所有数字
# for i in range(1, 11): # 前闭后开的区间
#     print(i)

# # 打印1~100之间的偶数
# for i in range(1, 101):
#     if i % 2 == 0:
#         print(i)

# # 遍历字符串序列
# for i in 'Hello World':
#     print(i)

# # 求水仙花数(比较笨的计算方法)
# for i in range(100, 1000):
#     # 每位的立方和为本身则输出
#     a = i % 10
#     b = i // 10 % 10 # 这里得是整除才行
#     c = i // 100 % 10
#     # if a*a*a+b*b*b+c*c*c == i:
#     if a**3+b**3+c**3 == i:
#         print(i)

# #  优化后的方法
# for i in range(1, 100000):
#     # 先计算出该数的位数
#     count = 0
#     tmp = i
#     while tmp > 0:
#         count += 1
#         tmp //= 10
#     # 通过位数进行求和
#     tmp = i
#     sum = 0
#     while tmp > 0:
#         sum += (tmp % 10) ** count
#         tmp //= 10
#     if i == sum:
#         print("这是一个类似水仙花数的数字："+str(sum))


# # for循环加强版：for-else
# # 只有当for循环全部走完之后，才能去执行else语句（异常退出不执行：包括break）
# sum = 0
# for i in range(1, 11):
#     if i == 5:
#         print("非正常退出~"+str(sum))
#         break # 这里就是非正常退出
#     sum += i
# else :
#     print("正常退出~"+str(sum))


# # while循环求1-100之间的累加和
# i = 0
# sum = 0
# while i <= 100:
#     sum += i # 通过缩进来判断是否同一个代码块当中的
#     i += 1
# print(sum)